package cn.com.self.apis.member.entity;

import cn.com.selfsoft.smartcity.commons.entity.AbstractEntity;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import org.springframework.format.annotation.DateTimeFormat;

import javax.validation.constraints.*;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

/**
 * <p>
 *
 * </p>
 *
 * @author liangwt
 * @since 2021-01-10
 */
@ApiModel(value = "会员基本信息类")
@TableName("u_member_info")
public class UMemberInfo extends AbstractEntity implements Serializable {
    /**
     * id
     */
    @ApiModelProperty(value = "id")
    private Long id;
    /**
     * 会员id
     */
   // @NotNull
    @ApiModelProperty(value = "会员id")
    private Long memberId;
    /**
     * 头像(附件url)
     */
    @ApiModelProperty(value = "头像(附件url)")
    private String headPortraitUrl;
    /**
     * 昵称
     */
    @ApiModelProperty(value = "昵称")
    private String name;
    /**
     * 邮箱
     */
    @ApiModelProperty(value = "邮箱")
    private String email;
    /**
     * 电话
     */
    @NotNull(message = "手机号不能为空")
    @NotBlank(message = "手机号不能为空")
    @Pattern(regexp ="^[1][3,4,5,6,7,8,9][0-9]{9}$", message = "手机号格式有误")
    //@Max(value = 11,message = "手机号只能为11位")
    //@Min(value = 11,message = "手机号只能为11位")
    @ApiModelProperty(value = "电话")
    private String telephone;
    /**
     * QQ
     */
    @ApiModelProperty(value = "QQ")
    private String qq;
    /**
     * 微信
     */
    @ApiModelProperty(value = "微信")
    private String vxNo;
    /**
     * 真实姓名
     */
    @ApiModelProperty(value = "真实姓名")
    private String realName;
    /**
     * 会员类型（1技术人员、2需求人员）
     */
    @ApiModelProperty(value = "会员类型（1技术人员、2需求人员）")
    private String memberType;
    /**
     * 身份证号码
     */
    @Pattern(regexp = "^\\d{15}|\\d{18}$",message = "身份证格式有误")
    @NotNull
    @ApiModelProperty(value = "身份证号码")
    private String idCarno;
    /**
     * 身份证正面照(附件)
     */
    //@NotNull
    @ApiModelProperty(value = "身份证正面照(附件)")
    private String imgIdcarFront;
    /**
     * 身份证反面照（附件）
     */
    //@NotNull
    @ApiModelProperty(value = "身份证反面照（附件）")
    private String imgIdcarBack;
    /**
     * 实名认证（1通过、2不通过）
     */
    @ApiModelProperty(value = "实名认证（1通过、2不通过）")
    private String realState;
    /**
     * 行业分类id
     */
    //@NotNull
    @ApiModelProperty(value = "行业分类id")
    private Long classificationId;
    /**
     * 工作年限
     */
    //@NotNull
    @ApiModelProperty(value = "工作年限")
    private String workYear;
    /**
     * 技术等级（1初级、2中级、3高级、4顶尖）
     */
    @ApiModelProperty(value = "技术等级（1初级、2中级、3高级、4顶尖）")
    private String level;

    @ApiModelProperty(value = "所在省份（字典 province）")
    private String province;
    @ApiModelProperty(value = "驻场（字典 onSite 1驻场 2不驻场）")
    private String onSite;
    @ApiModelProperty(value = "个人简介")
    private String personalProfile;

    @ApiModelProperty(value = "浏览量")
    private BigDecimal showNum;


    @ApiModelProperty(value = "备注")
    private String remarks;

    @ApiModelProperty(value = "创建时间")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(shape= JsonFormat.Shape.STRING,pattern="yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
    private Date createDate;
    @ApiModelProperty(value = "更新时间")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(shape=JsonFormat.Shape.STRING,pattern="yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
    private Date updateDate;

    @ApiModelProperty(value = "删除状态（字典 delFlag 0正常 1已删除）")
    private String delFlag;

    @ApiModelProperty(value = "评价等级，1星   1.5星.............5星好评")
    private String grading;

    public String getGrading() {
        return grading;
    }

    public void setGrading(String grading) {
        this.grading = grading;
    }

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public Long getMemberId() {
        return memberId;
    }

    public void setMemberId(Long memberId) {
        this.memberId = memberId;
    }

    public String getHeadPortraitUrl() {
        return headPortraitUrl;
    }

    public void setHeadPortraitUrl(String headPortraitUrl) {
        this.headPortraitUrl = headPortraitUrl;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    public String getTelephone() {
        return telephone;
    }

    public void setTelephone(String telephone) {
        this.telephone = telephone;
    }

    public String getQq() {
        return qq;
    }

    public void setQq(String qq) {
        this.qq = qq;
    }

    public String getVxNo() {
        return vxNo;
    }

    public void setVxNo(String vxNo) {
        this.vxNo = vxNo;
    }

    public String getRealName() {
        return realName;
    }

    public void setRealName(String realName) {
        this.realName = realName;
    }

    public String getMemberType() {
        return memberType;
    }

    public void setMemberType(String memberType) {
        this.memberType = memberType;
    }

    public String getIdCarno() {
        return idCarno;
    }

    public void setIdCarno(String idCarno) {
        this.idCarno = idCarno;
    }

    public String getImgIdcarFront() {
        return imgIdcarFront;
    }

    public void setImgIdcarFront(String imgIdcarFront) {
        this.imgIdcarFront = imgIdcarFront;
    }

    public String getImgIdcarBack() {
        return imgIdcarBack;
    }

    public void setImgIdcarBack(String imgIdcarBack) {
        this.imgIdcarBack = imgIdcarBack;
    }

    public String getRealState() {
        return realState;
    }

    public void setRealState(String realState) {
        this.realState = realState;
    }

    public Long getClassificationId() {
        return classificationId;
    }

    public void setClassificationId(Long classificationId) {
        this.classificationId = classificationId;
    }

    public String getWorkYear() {
        return workYear;
    }

    public void setWorkYear(String workYear) {
        this.workYear = workYear;
    }

    public String getLevel() {
        return level;
    }

    public void setLevel(String level) {
        this.level = level;
    }

    public String getProvince() {
        return province;
    }

    public void setProvince(String province) {
        this.province = province;
    }

    public String getOnSite() {
        return onSite;
    }

    public void setOnSite(String onSite) {
        this.onSite = onSite;
    }

    public String getPersonalProfile() {
        return personalProfile;
    }

    public void setPersonalProfile(String personalProfile) {
        this.personalProfile = personalProfile;
    }

    public BigDecimal getShowNum() {
        return showNum;
    }

    public void setShowNum(BigDecimal showNum) {
        this.showNum = showNum;
    }

    public String getRemarks() {
        return remarks;
    }

    public void setRemarks(String remarks) {
        this.remarks = remarks;
    }

    public Date getCreateDate() {
        return createDate;
    }

    public void setCreateDate(Date createDate) {
        this.createDate = createDate;
    }

    public Date getUpdateDate() {
        return updateDate;
    }

    public void setUpdateDate(Date updateDate) {
        this.updateDate = updateDate;
    }

    public String getDelFlag() {
        return delFlag;
    }

    public void setDelFlag(String delFlag) {
        this.delFlag = delFlag;
    }
}
